package main

import (
	"context" // 上下文  ------》 goroutine（go程）之间用来进行数据传递 API 包
	"fmt"
	"go_stu/src/6_demo_grpc/pb"
	"net"

	"google.golang.org/grpc"
)

// 定义一个类
type Children struct {
}

// 接口绑定类方法
func (this *Children) SayHello(ctx context.Context, t *pb.Teacher) (*pb.Teacher, error) {
	t.Name += " is sleeping"
	return t, nil
}

func main() {
	// 1、 初始化一个grpc对象
	grpcServer := grpc.NewServer()
	// 2、注册服务
	pb.RegisterSayNameServer(grpcServer, new(Children))
	// 3、设置监听，指定ip port
	fmt.Println("监听成功")
	listener, err := net.Listen("tcp", "127.0.0.1:8088")
	if err != nil {
		fmt.Println("net.Listen error ", err)
	}
	defer listener.Close()
	// 4、启动服务， server()
	grpcServer.Serve(listener)
}
